06 Sobre decorators

Próxima Atividade
  • Mudar o player
  • Sugerir melhoria

Gerson implementou o decorator visto neste capítulo. Contudo, ao usar em métodos que precisavam realizar event.preventDefault(), ele não funcionou corretamente, muitas vezes recarregando a página, o que não faz sentido dentro de uma Single Page Application.

Seu código com problema esta assim:

export function throttle(milissegundos = 500) {

    return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {

       const metodoOriginal = descriptor.value;

       if(event) event.preventDefault();

       descriptor.value = function(...args: any[]) {
            let timer = 0;
            clearInterval(timer);
            timer = setTimeout(() => metodoOriginal.apply(this, args), milissegundos);
        }

        return descriptor;
    }
}

Marque apenas as opções verdadeiras que indiquem problemas no código escrito por Gerson.

Selecione 2 alternativas
  • Alternativa correta
  • Alternativa correta

    Ele deve sim, sempre retornar o descriptor, esteja ele modificado ou não.

  • Alternativa correta

O código correto deve estar assim:

export function throttle(milissegundos = 500) {

    return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {

        const metodoOriginal = descriptor.value;

        let timer = 0;

        descriptor.value = function(...args: any[]) {
            if(event) event.preventDefault();
            clearInterval(timer);
            timer = setTimeout(() => metodoOriginal.apply(this, args), milissegundos);
        }

        return descriptor;
    }
}
Tirar dúvida Próxima Atividade
ícone TypeScript parte 2: Mais técnicas e boas práticas

TypeScript parte 2: Mais técnicas e boas práticas

100%
Aula04 de 05

API externa e interface

Atividades 6 de 11

  • 01 API externa 05min
  • 02 Consumindo API externa 09min
  • 03 Definindo uma interface para a API 06min
  • 04 API externa
  • 05 Revisando decorators 11min
  • 06 Sobre decorators
  • 07 Isolando o acesso à API em um serviço 09min
  • 08 Interface de função 08min
  • 09 Sobre interface de funções
  • 10 Revisão 03min
  • 11 Consolidando seus conhecimentos

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura